Career 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2004
All Rounds Final 1/2 1/4 First Second Third Fourth Pre-q Rubber 1 Rubber 2 Rubber 3 Rubber 4 Rubber 5 Robin Bronze Q3 N/A Q2 Q1 ER Q4 CR QF Q5 N/A
All Courts Acrylic N/A Clay Grass Carpet Hard I.hard
All Tour M25 Edmonton France F12 France F12 France F2 France F3 France F13 France F15 France F17 France F20 France F1 France F2 France F4 France F8 France F9 France F10 France F12 Belgium F2 Belgium F3 France F13 France F15 France F19 France F20 France F1 France F2 France F4 France F5 Spain F11 France F7 France F8 France F10 France F11 France F12 Spain F27 Spain F29 Belgium F2 France F13 France F14 France F15 France F17 France F18 France F19 France F20 Rodez Great Britain F1 Great Britain F2 France F1 France F2 France F4 France F5 France F6 France F10 France F4 France F5 France F4 Morocco F3 Tunisia F4 Tunisia F6 Morocco F2 Tunisia F16 Tunisia F20 Tunisia F22 Tunisia F23 Tunisia F24 Tunisia F25 Tunisia F26 Tunisia F27 Tunisia F28 Tunisia F30 Tunisia F31 Tunisia F32 Tunisia F20 Egypt F14 Morocco F4 Morocco F5 USA F32 USA F35 USA F40 Tunisia F22 (Hammamet) Tunisia F23 (Hammamet) Tunisia F24 (Hammamet) USA F24 (Champaign) USA F26 (Decatur) USA F27 (Edwardsville) Belgium F9 (Koksijde) Belgium F10 (Lambermont) Tunisia F25 (Hammamet) Tunisia F26 (Hammamet) Tunisia F28 (Hammamet) Tunisia F29 (Hammamet) Tunisia F30 (Hammamet) Tunisia F32 (Hammamet) Tunisia F33 (Hammamet) Tunisia F38 (Hammamet) Tunisia F40 (Hammamet) Tunisia F20 (Jerba) Tunisia F22 (Hammamet) Tunisia F23 (Hammamet) Tunisia F24 (Hammamet) USA F19 (Wichita) USA F19b (Iowa City) USA F20 (Champaign) USA F21 (Decatur) Romania F10 (Curtea de Arges) Tunisia F29 (La Marsa) Tunisia F38 (Monastir) Cameroon F1 (Yaounde) Cameroon F2 (Yaounde) Tunisia F44 (Monastir) Tunisia F45 (Monastir) M25 Los Angeles M25 Tucson M15 Tabarka M15 Tabarka M15 Tabarka M25 Pardubice M25 Iowa City M25 Champaign M25+H Bydgoszcz M15 Monastir M15 Monastir M15+H Bagnoles-de-l'Orne M15 Monastir M15+H Bressuire M15 Monastir M15 Monastir M15 Faro M15 Toulouse M15 Sintra M15 Monastir M25+H Rodez M15 Benicarlo M15 Madrid M15 Manacor M15 Manacor M15 Monastir M15+H Bressuire M15 Monastir M15 Monastir M25 Vale do Lobo M15 Monastir M25 Faro M15 Monastir M25 Vale do Lobo M15 Poitiers M15 Monastir M15 Monastir M15 Monastir M25 Reus M15 Monastir M25 Klosters M15 Xativa M25 Santander M15 Monastir M15 Monastir M25 Monastir M15 Manacor M25 Monastir M15 Creteil M25 Toulouse-Balma M25 Vic M15 Oran M15 Oran M15 Monastir M15 Monastir M25 Montauban M15 Monastir M15 Monastir M25 Monastir M25 Kursumlijska Banja M25 Saint-Augustin Challenger DCNS de Cherbourg - Cherbourg St. Brieuc Challenger Bordeaux Challenger Quimper Challenger Recanati Challenger Bratislava Challenger Helsinki Challenger Cherbourg Challenger Bath Challenger Tunis Challenger Nottingham Challenger Scheveningen Challenger Recanati Challenger St. Remy Challenger Orleans Challenger Mons Challenger Rennes Challenger Seoul Challenger Geneva Challenger Quimper Challenger Cherbourg Challenger St. Brieuc Challenger Bordeaux Challenger St. Remy Challenger Rennes Challenger Bratislava Challenger Heilbronn Challenger Cherbourg Challenger Guadalajara Challenger Le Gosier Challenger Bordeaux Challenger Nottingham Challenger St. Remy Challenger Mons Challenger Mouilleron-Le-Captif Challenger Cherbourg Challenger Quimper Challenger Le Gosier Challenger Cordenons Challenger Manerbio Challenger Mons Challenger Cherbourg Challenger Rome Challenger Manerbio Challenger Orleans Challenger Budapest Challenger Recanati Challenger Orleans Challenger Eckental Challenger Noumea Challenger Blois Challenger Orleans Challenger Barcelona Challenger St. Brieuc Challenger Tunis Challenger Bordeaux Challenger Blois Challenger Recanati Challenger Amersfoort Challenger Cherbourg Challenger Morelos Challenger Calgary Challenger Orlando Challenger Salinas 2 Challenger Aix En Provence Challenger Kyiv Challenger Rennes Challenger Mouilleron-Le-Captif Challenger Brest Challenger Antalya 3 Challenger Cherbourg Challenger Rome 1 Challenger Vicenza Challenger Rennes Challenger Orleans Challenger Oeiras 1 Challenger Oeiras 2 Challenger Ottignies-Louvain-la-Neuve Challenger Waco Challenger Lugano Challenger Oeiras 3 Challenger Savannah Challenger Open Sud de France - Montpellier Open 13 - Marseille AEGON Championships - London Moselle Open - Metz Aircel Chennai Open - Chennai Open Sud de France - Montpellier Barcelona Open BancSabadell - Barcelona AEGON Championships - London AEGON International - Eastbourne Hall of Fame Tennis Championships - Newport Credit Agricole Suisse Open - Gstaad Winston-Salem Open - Winston-Salem Moselle Open - Metz If Stockholm Open - Stockholm ABN AMRO World Tennis Tournament - Rotterdam Open 13 - Marseille Open de Nice Cote d'Azur - Nice AEGON Championships - London SkiStar Swedish Open - Bastad Bet-at-home Open - Hamburg Moselle Open - Metz Swiss Indoors Basel - Basel Heineken Open - Auckland Open 13 - Marseille Barcelona Open BancSabadell - Barcelona Moselle Open - Metz Millennium Estoril Open - Estoril Open Sud de France - Montpellier Open 13 - Marseille Grand Prix Hassan II - Marrakech Barcelona Open BancSabadell - Barcelona Bet-at-home Open - Hamburg Generali Open - Kitzbuhel European Open - Antwerp Open Sud de France - Montpellier Millennium Estoril Open - Estoril European Open - Antwerp Open Sud de France - Montpellier Barcelona Open BancSabadell - Barcelona Plava Laguna Croatia Open - Umag Moselle Open - Metz Open Parc - Lyon Delray Beach Open - Delray Beach Qatar ExxonMobil Open - Doha Abierto de Tenis Mifel - Los Cabos M25 Monastir Australian Open - Melbourne BNP Paribas Masters - Paris Monte-Carlo Rolex Masters - Monte-Carlo BNP Paribas Masters - Paris Sony Open Tennis - Miami BNP Paribas Masters - Paris BNP Paribas Masters - Paris Miami Open - Miami Wimbledon - London Australian Open - Melbourne French Open - Paris Wimbledon - London Australian Open - Melbourne French Open - Paris Australian Open - Melbourne French Open - Paris Wimbledon - London Australian Open - Melbourne French Open - Paris Australian Open - Melbourne French Open - Paris Hopman Cup - Perth Davis Cup, Group II, PO, CYP-TUN 1-4 Davis Cup, Group II, 1R, TUN-GRE 1-3 Australian Open (juniors) French Open (juniors) Wimbledon (juniors) All Lower level tournaments France F18 Spain F14 France F19 Morocco F2 Morocco F5 Tunisia F17 Tunisia F33 Tunisia F21 Mozambique F1 Mozambique F2 Egypt F13 Egypt F16 Morocco F6 Tunisia F21 (Hammamet) M15 Poitiers M25 Angers Tunisia F31 (Hammamet) Tunisia F39 (Hammamet) Tunisia F5 (Jerba) M15 Monastir USA F10 (Little Rock) M25 Fuzhou USA F22 (Edwardsville) M15 Bressuire M15 Bressuire Tunisia F37 (Monastir) Tunisia F39 (Monastir) Egypt F28 (Sharm El Sheikh) M25 Benicarlo M15 Tabarka M15 Tabarka M15 Tabarka M25 Mataro M25 La Marsa M15 Tabarka M15 Tabarka M25+H Lagos M25+H Lagos M25 Monastir M15 Meshref M25 Monastir M15 Monastir M15 Manacor M25 Guiyang M25 Monastir M25 Doha M15 Vale Do Lobo M15 Monastir M15 Monastir M15 Monastir M25 Hammamet M25 Porto M25 Angers M15 Las Palmas de Gran Canaria M15 Monastir M15 Monastir M15 Monastir M25 Montauban M25 Wroclaw M25+H Ajaccio M25 Edmonton M15 Monastir M15 Monastir M15 Poitiers M25 Bagneres-De-Bigorre M25+H Rodez M25 Toulouse M15 Monastir M15+H Bagnoles de l'Orne Noumea Challenger M25 Vale do Lobo Casablanca Challenger M15 Monastir M15 Poitiers M15 Monastir M15 Monastir M25 Reus M25 Angers M25 Monastir M15 Monastir M15 Monastir M15 Monastir M15 Monastir M15 Monastir M25 Saint-Augustin M25 Monastir M25 Monastir M25 Monastir Tunisia F21 M15 Gijon Nottingham Challenger M15 Valencia M25 Monastir M25 Padova Aix En Provence Challenger M25 Toulouse-Balma M25 Hammamet M15 Azay-le-Rideau Campinas Challenger M15 Madrid M25 Vic M25 Mataro Cherbourg Challeger M25 Villeneuve-Loubet Mouilleron-Le-Captif Challenger M25+H Ajaccio Leon Challenger Roanne Challenger Porto Challenger Segovia Challenger Mouilleron-Le-Captif Challenger M25+H Bagneres-de-Bigorre Cuernavaca Challenger Cherbourg Challenger Pozoblanco Challenger M15 Monastir M25 Hazebrouck M25 Esch/Alzette M15 Monastir M15 Monastir Open D'Orleans - Orleans Calgary Challenger M25 Les Franqueses del Valles M25 Santo Domingo M25 Toulouse-Balma Chicago Challenger St. Brieuc Challenger M15 Lons-le-Saunier M15 Monastir M15 Monastir Little Rock Challenger M25 Carnac Nottingham 3 Challenger M25 Monastir M25 Monastir M25 Villeneuve-Loubet Tunis Challenger Heilbronn Challenger Bratislava Challenger Orleans Challenger Puerto Vallarta Challenger Prague 2 Challenger Forli 6 Challenger Segovia Challenger Rennes Challenger Drummondville Challenger Noumea Challenger Abidjan 1 Challenger Vicenza Challenger Vancouver Challenger Forli Challenger Roanne Challenger Salinas Challenger Morelos Challenger Koblenz Challenger Cherbourg Challenger Lille Challenger San Luis Potosi Challenger Zug Challenger Koblenz Challenger Pau Challenger Open de Moselle - Metz St. Brieuc Challenger Quimper Challenger Tampere Challenger M15 Tabarka Millennium Estoril Open - Estoril Perugia Challenger Mouilleron-Le-Captif Challenger Chennai Challenger Barcelona Challenger Aguascalientes Challenger Cherbourg Challenger Cherbourg Challenger Barletta Challenger Perugia Challenger Austrian Open - Kitzbuhel Cherbourg Challenger Pau Challenger San Luis Potosi Challenger Porto Challenger Moselle Open - Metz Istanbul Challenger Charleston Challenger Barcelona Open BancSabadell - Barcelona Porto 2 Challenger St. Brieuc Challenger Istanbul Challenger Monza Challenger Bordeaux Challenger Tyler Challenger Cassis Challenger Segovia Challenger St. Remy Challenger Istanbul Challenger Open 13 Provence - Marseille Mons Challenger Rennes Challenger Orleans Challenger Millennium Estoril Open - Estoril Quimper Challenger Manzanillo Challenger Bordeaux Challenger Mexico City Challenger Pozoblanco Challenger Cordenons Challenger Segovia Challenger Petange Challenger Bratislava Challenger Rennes Challenger Nottingham Challenger Valencia Open - Valencia Tennis Napoli Open - Naples Petange Challenger Mons Challenger Moselle Open - Metz Manama Challenger Thionville Challenger Royan Challenger Orleans Challenger Dubai Duty Free Tennis Championships - Dubai Orleans Challenger Genova Challenger Apia International - Sydney Oeiras 5 Challenger Mouilleron-Le-Captif Challenger Troyes Challenger Turin Challenger Winnetka Challenger Perugia Challenger Szczecin Challenger Florence Challenger Tunis Challenger Sophia Antipolis Challenger Lisbon Challenger Prostejov Challenger Tiburon Challenger Winnetka Challenger Rennes Challenger Fairfield Challenger Prague Challenger Segovia Challenger Noumea Challenger Portoroz Challenger Bordeaux Challenger Pune Challenger Como Challenger Genova Challenger Sao Paulo Challenger Cherbourg Challenger Salinas Challenger Mouilleron-Le-Captif Challenger Biella 7 Challenger Surbiton Challenger Pozoblanco Challenger Quimper Challenger Genova Challenger Szczecin Challenger Tenerife Challenger Swiss Open - Gstaad Bari Challenger Maia 1 Challenger Porto 2 Challenger Lyon Challenger Braunschweig Challenger Segovia Challenger Bordeaux Challenger Lyon Challenger Como Challenger San Marino Challenger Mons Challenger European Open - Antwerp Como Challenger St. Tropez Challenger Eckental Challenger Drummondville Challenger Biel Challenger Noumea Challenger Morelos Challenger Eckental Challenger Aix En Provence Challenger Granby Challenger Tunis Challenger Koblenz Challenger Prague 3 Challenger Rennes Challenger Cherbourg Challenger Blois Challenger Wroclaw Challenger St. Brieuc Challenger Columbus Challenger Sophia Antipolis Challenger Cassis Challenger Koblenz Challenger Oeiras 1 Challenger Aix En Provence Challenger Naples Challenger Bordeaux Challenger Troyes Challenger Mouilleron-Le-Captif Challenger Perugia Challenger Pozoblanco Challenger Hamburg Challenger Como Challenger Maia Challenger Ortisei Challenger Tenerife 1 Challenger Koblenz Challenger Rennes Challenger Brest Challenger Cherbourg Challenger Lille Challenger Bergamo Challenger St. Brieuc Challenger Szekesfehervar Challenger Charlottesville Challenger Alicante Challenger Roanne Challenger Tallahassee Challenger Calgary Challenger Francavilla Challenger Manama Challenger Aix En Provence Challenger Skopje Challenger Troisdorf Challenger Bordeaux Challenger Swiss Indoors Basel - Basel Girona Challenger Open Sud de France - Montpellier Poznan Challenger Iasi Challenger Tampere Challenger Puerto Vallarta Challenger Barcelona Open BancSabadell - Barcelona Tunis Challenger Cordenons Challenger Hamburg Open - Hamburg Orleans Challenger Topshelf Open - 's-Hertogenbosch Credit Agricole Suisse Open - Gstaad Abidjan 2 Challenger Vicenza Challenger Little Rock Challenger Bergamo Challenger Calgary Challenger Nonthaburi 3 Challenger Pozoblanco Challenger Rome Challenger Hamburg Challenger Open Sud de France - Montpellier Rome Challenger Pozoblanco Challenger Mallorca Challenger Porto Challenger AEGON Championships - London Seville Challenger Bet-at-home Cup - Kitzbuhel Manacor Challenger Mouilleron-Le-Captif Challenger Roanne Challenger Drummondville Challenger Lille Challenger Orleans Challenger Open de Nice Cote d'Azur - Nice AEGON Championships - London Bet-at-home Cup - Kitzbuhel Apia International - Sydney Braunschweig Challenger Lille Challenger Pau Challenger Todi Challenger Iasi Challenger Valencia Challenger Pau Challenger Madrid Challenger Tyler Challenger Sony Open Tennis - Miami Karlsruhe Challenger Qatar ExxonMobil Open - Doha Mallorca Challenger Monte-Carlo Rolex Masters - Monte-Carlo Swiss Indoors Basel - Basel BMW Open - Munich AEGON Championships - London Bet-at-home Open - Hamburg Rakuten Japan Open - Tokyo Firenze Open - Florence Grand Prix Hassan II - Casablanca Hong Kong Tennis Open - Hong Kong Topshelf Open - 's-Hertogenbosch SkiStar Swedish Open - Bastad Credit Agricole Suisse Open - Gstaad Erste Bank Open - Vienna Grand Prix Hassan II - Casablanca Konzum Croatia Open - Umag Open Sud de France - Montpellier Nature Valley International - Eastbourne Lille Challenger Hong Kong Tennis Open - Hong Kong Dubai Duty Free Tennis Championships - Dubai Maia Challenger Grand Prix Hassan II - Marrakech French Open - Paris Miami Open - Miami Sofia Open - Sofia Zagreb Challenger Australian Open - Melbourne Mutua Madrid Open - Madrid Internazionali BNL d'Italia - Rome M25 Porto Wimbledon - London U.S. Open - New York Shanghai Rolex Masters - Shanghai Wimbledon - London Australian Open - Melbourne French Open - Paris French Open - Paris Australian Open - Melbourne Wimbledon - London U.S. Open - New York Davis Cup, World Group II, 1R, TUN-IRL 3-2 Wimbledon - London U.S. Open - New York Australian Open - Melbourne Davis Cup, World Group II, PO, GUA-TUN 1-3 Monte-Carlo Rolex Masters - Monte-Carlo Tunis Challenger U.S. Open - New York French Open - Paris Wimbledon - London French Open - Paris Wimbledon - London Wimbledon - London Wimbledon - London M25 Roehampton U.S. Open - New York U.S. Open - New York Davis Cup, Group II, PO, TUN-BUL 3-2 Davis Cup, Group II, 1R, TUN-SWE 2-3 Davis Cup, Group II, 1R, TUN-FIN 2-3 Davis Cup, Group I, PO, TUN-UKR 3-2 Davis Cup, Group II, 1R, GEO-TUN 4-1